package com.hqj.demo.test;

import com.hqj.demo.entity.Teacher;
import com.hqj.demo.service.MemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import javax.annotation.Resource;
import java.util.List;

/**
 * spring使用注解方式的练习
 * @author HQJ
 * 1、有接口MemberDao ,方法findMember(),返回老师集合
 *    实现类MemberDaoI,重写该方法，返回5个老师的集合
 *
 * 2、有接口MemberService ,方法findMember(),返回老师集合，参数String param
 *    实现类MemberServiceI1,重写该方法，查询名称 = param值的老师   (也可以考虑名称 like param)
 *    实现类MemberServiceI2,重写该方法，查询身高 >= param值的老师
 *
 * 3、新建一个MemberController类，调用serviec接口的方法，传入参数，获取集合
 * 4、测试类Exercise04 ，生成对应的测试数据，调用方法，输出结果
 * 新建spring04.xml文件，实现spring的按类型注入与按资源名称注入的方式
 */
public class Exercise04{

    public static void main(String[] args) {
        //读取spring的配置文件
        ApplicationContext ac =
                new ClassPathXmlApplicationContext("com/hqj/demo/spring04.xml");

        MemberController mc = (MemberController)ac.getBean("mc");
        List<Teacher> list = mc.find("hqj123");
        for(Teacher t:list){
            System.out.println(t);
        }
    }
}
class MemberController{
    @Resource(name="msi1")
    private MemberService ms;

    public List<Teacher> find(String param){
        return ms.findTeacher(param);
    }
}

